import request from '@/utils/request';
import type { BaseBeanModel, ResponsePageData, ResponseBaseData, QueryParamModel } from '@/api/model/baseModel';
const basePath = 'appsys/userlimitip/AppUserLimitIpRest';

/** 限制用户登陆IP */
export interface SysUserLimitIpDto extends BaseBeanModel {
  /** 受到限人ID */
  userLimitUserId?: string;
  userLimitUserIdAlias?: string;
  /** 0：IP点，1：IP段 */
  limitTypeIpType?: string;
  /** 分为用户不能访问；用户只能访问 */
  limitUserType?: string;
  /** 开始IP */
  userLimitIpFrom?: string;
  /** 结束IP */
  userLimitIpEnd?: string;
  /** 扩展字段 */
  attribute01?: string;
  /** 扩展字段 */
  attribute02?: string;
  /** 扩展字段 */
  attribute03?: string;
  /** 扩展字段 */
  attribute04?: string;
  /** 扩展字段 */
  attribute05?: string;
  /** 扩展字段 */
  attribute06?: string;
  /** 扩展字段 */
  attribute07?: string;
  /** 扩展字段 */
  attribute08?: string;
  /** 扩展字段 */
  attribute09?: string;
  /** 扩展字段 */
  attribute10?: string;
}

/**
 * 获取分页数据
 * @param param QueryParamModel
 * @returns list 列表数据、totalPage 总条数
 */
export function listSysUserLimitIpByPage(parmars: QueryParamModel): Promise<ResponsePageData<SysUserLimitIpDto>> {
  return request.post(`${basePath}/search-by-page/v1`, parmars);
}

/**
 * 保存表单数据
 * @param parmars
 * @returns 新增/编辑后的数据
 */
export function saveSysUserLimitIp(parmars: any): Promise<ResponseBaseData<any>> {
  return request.post(`${basePath}/batchInsertOrUpdate/v1`, parmars);
}

/**
 * 根据id集合删除数据
 * @param ids 行数据id
 * @returns 行数据
 */
export function delSysUserLimitIp(ids: [string]): Promise<ResponseBaseData<any>> {
  return request.delete(`${basePath}/delete-by-ids/${ids}/v1`);
}

/**
 * 根据受限人id生成受限人账号
 * @param ids 受限人id
 * @returns 受限人账号
 */
export function getSelectedUserInfo(ids: [string]) {
  return request.post('/appsys/common/select/getSelectedUserInfo/v1', ids);
}
